package org.suanfaTranning.ST200_Chatpter1_LineTable_HashTable_String.array;

/**
 * @Auther: qingle
 * @Date: 2024/9/5-0:54
 * @Description:
 * @version: 1.0
 */
public class Solution2_1 {
	public static int reverseBits(int n) {
		int result = 0;
		for (int i = 0; i < 32; i++) {
			result <<= 1; // 将结果左移一位，为下一个位腾出空间
			result |= (n & 1); // 将当前整数的最低位添加到结果的最低位
			n >>>= 1; // 将当前整数右移一位，忽略已经处理过的最低位
		}
		return result;
	}

	public static void main(String[] args) {
//		int n = -3; // 例子中的输入
		int n = 964176192; // 例子中的输入
		int reversed = reverseBits(n);
		System.out.println(Integer.toBinaryString(reversed)); // 输出颠倒后的二进制表示
		System.out.println(reversed); // 输出颠倒后的十进制表示
	}
}